import request from '@/config/axios'
import { QuarterProduceRecordVO } from '@/api/pplan/quarterproducerecord'

// 生产计划-生产计划记录 VO
export interface ProduceRecordVO {
  id: number // 主键
  mealUnit: string // 配餐单位
  flightNo: string // 航班号
  aircraftType: string // 机型
  schPat: string // 班期(如:1234567)
  depLoc: string // 起飞地点
  depIata: string // 起飞站点三字代码
  depTime: localtime // 起飞时间
  arrLoc: string // 降落地点
  arrIata: string // 降落站点三字代码
  arrTime: localtime // 降落时间
  flyDur: string // 公布飞行时长(分钟)
  avgActualDur: string // 平均空中实际飞行时间(分钟)
  flightType: string // 航班性质
  bussClassMeal: string // 商务舱餐谱
  bussClassSpcMeal: string // 商务舱特殊餐餐谱
  premEcoClassMeal: string // 高级经济舱餐谱
  premEcoClassSpcMeal: string // 高级经济舱特殊餐餐谱
  ecoClassMeal: string // 经济舱餐谱
  ecoClassSpcMeal: string // 经济舱特殊餐谱
  crewMeal: string // 机组餐谱
  weeklyMealQty: string // 周配餐量
  airlineComp: string // 所属公司
  airlineIata: string // 所属公司三字代码
  airlineType: string // 航线类别
  effectiveDate: string // 执行日期
  remarks: string // 备注
  isWaterPkg: string // 小水放袋/盒
  isConnFlight: string // 联程航班
  cateringSite: string // 航食站点
  nonStd: string // 非标
  isMatche: string // 匹配
  flightCount: string // 航班量统计
  carInfo: string // 车辆信息
  flightCrew: string // 航机员
  airportStands: string // 机位
  inboundFlight: string // 进港航班
  machineNo: string // 机号
  inboundTime: localtime // 降落时间
  preLandingTime: localtime // 预落时间
  bussClassQty: number // 商务舱人数量
  premEcoClassQty: number // 高级经济舱人数量
  ecoClassQty: number // 经济舱人数量
  crewQty: number // 机组人数量
  bussClassSpcQty: number // 商务舱特殊人数量
  premEcoClassSpcQty: number // 高级经济舱特殊人数量
  ecoClassSpcQty: number // 经济舱特殊人数量
  crewSpcQty: number // 机组特殊人数量
  bussClassMealQty: number // 商务舱餐数量
  premEcoClassMealQty: number // 高级经济舱餐数量
  ecoClassMealQty: number // 经济舱餐数量
  crewMealQty: number // 机组餐数量
  bussClassSpcMealQty: number // 商务舱特殊餐数量
  premEcoClassSpcMealQty: number // 高级经济舱特殊餐数量
  ecoClassSpcMealQty: number // 经济舱特殊餐数量
  crewSpcMealQty: number // 机组特殊餐数量
  dinerCars: number // 餐车数量
  ovens: number // 烤炉数量
  specialRemarks: string // 特殊说明
  recordDate: Date // 记录日期
  markStatus: number // 标记状态:1未标记;
  status: number // 生产状态，默认1未开始2进行中3已结束
}

// 生产计划-生产计划记录 API
export const ProduceRecordApi = {
  // 查询生产计划-生产计划记录分页
  getProduceRecordPage: async (params: any) => {
    return await request.get({ url: `/pplan/produce-record/page`, params })
  },

  // 查询生产计划-生产计划记录详情
  getProduceRecord: async (id: number) => {
    return await request.get({ url: `/pplan/produce-record/get?id=` + id })
  },

  // 查询生产计划-生产计划记录详情--航班号
  getProduceRecordByFN: async (flightNo: string) => {
    return await request.get({ url: `/pplan/produce-record/getno?flightNo=` + flightNo })
  },

  // 新增生产计划-生产计划记录
  createProduceRecord: async (data: ProduceRecordVO) => {
    return await request.post({ url: `/pplan/produce-record/create`, data })
  },

  // 修改生产计划-生产计划记录
  updateProduceRecord: async (data: ProduceRecordVO) => {
    return await request.put({ url: `/pplan/produce-record/update`, data })
  },

  // 修改状态
  updateFinishStatus: async (data: ProduceRecordVO) => {
    return await request.put({ url: `/pplan/produce-record/update-finish-status`, data })
  },

  // 修改机供品餐具清洗计划-清洗状态
  updateProduceRecordStatus: async (data: ProduceRecordVO) => {
    return await request.put({ url: `/pplan/produce-record/update-status`, data })
  },

  // 删除生产计划-生产计划记录
  deleteProduceRecord: async (id: number) => {
    return await request.delete({ url: `/pplan/produce-record/delete?id=` + id })
  },

  // 导出生产计划-生产计划记录 Excel
  exportProduceRecord: async (params) => {
    return await request.download({ url: `/pplan/produce-record/export-excel`, params })
  },
  // 获得生产记录统计信息
  getStatistics: async () => {
    return await request.get({ url: `/pplan/produce-record/statistics` })
  },
  // 根据航班和日期获取餐谱和数量信息
  getRecipeInfo: async (flightNo: string, recordDate: string) => {
    return await request.get({ url: `/pplan/produce-record/recipe-info?flightNo=` + flightNo + `&recordDate=` +  recordDate})
  }
}
